package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.TxnNumMap;

import java.util.List;

/**
 * 交易码映射关系表操作接口
 * Created by 王成 on 2017/11/22.
 */
public interface TxnNumMapMapper {
    /**
     * 根据源系统标识获取交易码映射关系配置信息
     *
     * @param dbPoolCacheNodeName 数据库连池缓存节点名
     * @return 交易码映射关系信息集合
     * @throws Exception 异常
     */
    List<TxnNumMap> loadTxnNumMapInfo(String dbPoolCacheNodeName) throws Exception;

    /**
     * 根据交易渠道标识获取交易码映射关系配置信息
     *
     * @param instId         多法人机构标识
     * @param msgSrcId       源系统标识
     * @param transChannelId 源交易渠道标识
     * @return 交易码映射关系信息集合
     * @throws Exception 异常
     */
    List<TxnNumMap> selectTxnNumMapInfoByMsgTransChannelId(String instId, String msgSrcId, String transChannelId) throws Exception;

    /**
     * 根据主键查询交易码映射关系信息
     *
     * @param instId         多法人机构标识
     * @param msgSrcId       源系统标识
     * @param transChannelId 源交易渠道标识
     * @param srcTxnNum      源交易码
     * @return 交易码映射关系
     * @throws Exception 异常
     */
    TxnNumMap selectTxnNumMapInfoByPrimaryKey(String instId, String msgSrcId, String transChannelId, String srcTxnNum) throws Exception;

    /**
     * 根据主键更新交易码映射关系信息
     *
     * @param txnNumMap 交易码映射关系
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateTxnNumMapInfoByPrimaryKey(TxnNumMap txnNumMap) throws Exception;

    /**
     * 登记交易码映射关系信息
     *
     * @param txnNumMap 交易码映射关系
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertTxnNumMapInfo(TxnNumMap txnNumMap) throws Exception;
}
